#pragma once
#include <vector>

template<class T>
class Collection
{
private:
	int _count;
	//T** _storage;
	std::vector<T*> _storage;
public:
	Collection()
	{
		//this->_storage = new T*[100];
		this->_count = 0;
	};

	Collection(int maxItemsCount)
	{
		//this->_storage = new T*[maxItemsCount];
		this->_count = 0;
	};

	void Add(T* data)
	{
		_storage.push_back(data);
		_count++;
	};

	T* Get(int index)
	{
		return _storage[index];
	};

	int Count()
	{
		return _storage.size();
	};

	void RemoveAt(int index)
	{
		_storage.erase(_storage.begin()+index);
	};
};